package com.CRApp.service;

import com.CRApp.pojo.Address;
import java.util.List;

/**
 * 收货地址服务接口
 * 定义收货地址管理的业务操作
 */
public interface AddressService {
    /**
     * 添加收货地址
     * 创建新的收货地址，地址ID由数据库自动生成
     * 
     * @param address 收货地址对象
     * @return 新增地址的ID，失败返回null
     */
    Integer addAddress(Address address);
    
    /**
     * 更新收货地址
     * 更新指定ID的收货地址信息
     * 
     * @param address 包含更新内容的地址对象
     * @return 更新结果，true表示成功，false表示失败
     */
    boolean updateAddress(Address address);
    
    /**
     * 删除收货地址
     * 根据地址ID删除指定的收货地址
     * 
     * @param addressesId 地址ID
     * @param userId 用户ID (仅作记录)
     * @return 删除结果，true表示成功，false表示失败
     */
    boolean deleteAddress(Integer addressesId, Integer userId);
    
    /**
     * 获取用户的所有收货地址
     * 查询指定用户ID的所有收货地址
     * 
     * @param userId 用户ID
     * @return 地址列表，无地址或失败返回空列表
     */
    List<Address> getUserAddresses(Integer userId);
    
    /**
     * 获取收货地址详情
     * 查询指定ID的收货地址详情
     * 
     * @param addressesId 地址ID
     * @return 地址对象，不存在返回null
     */
    Address getAddressDetail(Integer addressesId);
} 